package com.wonders.config;

import org.springframework.cache.CacheManager;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.cache.concurrent.ConcurrentMapCache;
import org.springframework.cache.support.SimpleCacheManager;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.util.Arrays;

//@EnableCaching
//@Configuration
public class CacheConfig1 {

    /**

     1、不需要引入任何依赖
     2、可选择配置application.yml（不配置默认也是这个）
       spring:
        cache:
          type: simple
     3、配置CacheManager

     */
//    @Bean
    public CacheManager cacheManager() {
        // CacheManager
        SimpleCacheManager simpleCacheManager = new SimpleCacheManager();

        /**
         * Cache，这里注意了，你的cache名字一定要和BookServiceImpl使用的cache名字一样，
         * 否则会报错找不到BookServiceImpl里指定的CacheNames。
         *
         * 这里Cache你可以像官方文档中那样使用bean的方式注册，然后使用当前方法的参数传入，也可以直接new
         */
        ConcurrentMapCache books = new ConcurrentMapCache("books");

        simpleCacheManager.setCaches(Arrays.asList(books));
        return simpleCacheManager;
    }

}
